<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Accion_clase_lst( $this );

	class Accion_clase_lst extends Lst
	{
	function Accion_clase_lst( &$oModule )
		{
			$this->Lst( $oModule );
		}
	function setLevel()
		{
			switch ( $this->getOptionView() )
			{
				case 'E':
					$this->aShowColumns = array( 'SubModulo', 'Accion' );
					break;
			}
		}
	function initialize()
		{
			$this->oFiltro = $this->oModule->loadClass( 'Accion_clase_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			
			$this->setTitle ( "Clases y Acciones" );
			$this->setSummary( "Esta tabla contiene el listado de las clases que se utilizan en las acciones" );
			$this->setOrderBy("nPaso", true);
			$this->aFields['ncClase'] =  getParam(ncClase);
			$this->aFields['ncAccion'] =  getParam(ncAccion);
			if ( ! $this->aFields['ncAccion'] )
			{
				$this->addColumn ( 'Accion', 'cdAccion', true );
			}
			$this->addColumn ( 'Paso', 'nPaso', true );
			$this->addColumn ( 'Clase', 'cFisico' );
			$this->addColumn ( 'Accion', 'cdAccion' );
			$this->addColumn ( 'Evento', 'cdEvento' );
			$this->addColumn ( 'Metodo', 'cMetodo' );
			$this->addColumn ( 'SubModulo', 'cdSubModulo' );
			$this->oDatabase = openMetadataDB ( getParam('cPathModule') );
		}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT nPaso, cdAccion, cdEvento, SMo.cdSubModulo, Cla.ncClase, Cla.cFisico, PCl.cMetodo, PCl.ncOrden, PCl.ncAccion
										FROM stAccionClase AS PCl
										JOIN stAccion as Pro
											ON Pro.ncAccion = PCl.ncAccion
										JOIN stClase as Cla
											ON  Cla.ncClase = PCl.ncClase
										LEFT JOIN stSubModulo as SMo
											ON SMo.ncSubModulo = Cla.ncSubModulo
										JOIN scEvento as Eve
											ON Eve.ncEvento = PCl.ncEvento";
			// Arma el Filtro de la Consulta
				$this->oFiltro->setDefaultSearchField( "concat(cdAccion, ' ' , cdEvento )" );
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray() , 'PCl');
				$this->oWhere->add ( "TRP.ncCategoriaClase", $this->aFields['ncCategoriaClase'] );
				return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			$this->addListAction ( AGREGAR_UNA_CLASE_A_UN_ACCION, "ncClase=" . $this->aFields['ncClase'] ."&amp;ncAccion=" . $this->aFields['ncAccion'] . "&amp;ncCategoriaClase=" . $this->aFields['ncCategoriaClase'], 'I' );
			$this->addListAction ( AGREGAR_ACCION );
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro = "ncAccion=" . $aRow["ncAccion"] . "&amp;ncOrden=" . $aRow["ncOrden"];
			$this->addRowAction ( MODIFICAR_UNA_CLASE_A_UN_ACCION , $cParametroRegistro, '',  VENTANA_SECUNDARIA);
			$this->addRowAction ( ELIMINAR_UNA_CLASE_A_UN_ACCION , $cParametroRegistro );
			$this->addRowAction ( CONSULTAR_ACCIONES, "ncAccion=" . $aRow["ncAccion"] );
			$this->addRowAction ( CONSULTAR_CLASES, "ncClase=" . $aRow["ncClase"] );
		}
	}
?>